#include "my_win.h"
#include "lv_font_source_han_sans_bold.h"
#include <sys/time.h>
//界面背景图实现
// 背景图片相关
static lv_obj_t * background_img = NULL;
static int current_background_index = 0;
static const char * background_images[] = {
    "S:/IOT/bling/pt1.png",
    "S:/IOT/bling/pt2.png",
    "S:/IOT/bling/pt3.png"
};

// 上一张背景按钮的回调函数
static void prev_bg_btn_event_callback(lv_event_t * event);

// 下一张背景按钮的回调函数
static void next_bg_btn_event_callback(lv_event_t * event);


/*
    界面翻转的逻辑如下:
*/
#define HIDDEN_WIN (0)
// 主界面
static lv_obj_t * main_win = NULL;
// 时间界面
static lv_obj_t * time_win = NULL;
// 天气界面
static lv_obj_t * weather_win = NULL;
// 公告界面
static lv_obj_t * an_win = NULL;
// 注意事项1界面
static lv_obj_t * notice1_win = NULL;
// 注意事项2界面
static lv_obj_t * notice2_win = NULL;
// 注意事项3界面
static lv_obj_t * notice3_win = NULL;


// 天气按钮的回调函数  (事件函数)
static void weather_btn_event_callback(lv_event_t * event);

// 时间按钮的回调函数  (事件函数)
static void time_btn_event_callback(lv_event_t * event);
// 公告按钮的回调函数  (事件函数)
static void an_btn_event_callback(lv_event_t * event);

// 注意事项1按钮的回调函数  (事件函数)
static void notice1_btn_event_callback(lv_event_t * event);

// 注意事项2按钮的回调函数  (事件函数)
static void notice2_btn_event_callback(lv_event_t * event);
// 注意事项3按钮的回调函数  (事件函数)
static void notice3_btn_event_callback(lv_event_t * event);

// 图标按钮
lv_obj_t * lv_imgbtn(lv_obj_t * parent, int x, int y, int w, int h, char * pic_path)
{
    /*Darken the button when pressed and make it wider*/
    static lv_style_t style_pr; //样式表
    lv_style_init(&style_pr);
    lv_style_set_img_recolor_opa(&style_pr, LV_OPA_30);
    lv_style_set_img_recolor(&style_pr, lv_color_black());
    lv_style_set_transform_height(&style_pr, 20);

    /*Create an image button*/
    lv_obj_t * imgbtn = lv_imgbtn_create(parent);
    if(imgbtn == NULL) {
        LV_LOG_ERROR("lv_imgbtn_create fail:"); // 输出错误提示
        return NULL;
    }

    lv_obj_set_size(imgbtn, w, h); //"S:/1.png"
    lv_imgbtn_set_src(imgbtn, LV_IMGBTN_STATE_RELEASED, NULL, pic_path, NULL);
    // lv_obj_add_style(imgbtn1, &style_def, 0);
    lv_obj_add_style(imgbtn, &style_pr, LV_STATE_PRESSED);

    //(x和h按键偏移的位置)
    lv_obj_align(imgbtn, LV_ALIGN_TOP_LEFT, x, h);

    //ai更改
    lv_obj_set_pos(imgbtn, x, y); // 直接设置图标的左上角位置

    return imgbtn;
}

//主界面细节图

// 子界面相关
static lv_obj_t * xj1_win = NULL;
static lv_obj_t * xj2_win = NULL;
static lv_obj_t * xj3_win = NULL;

// 子界面1返回事件函数
static void xj_return(lv_event_t * e, lv_obj_t * win)
{
    LV_LOG_USER("xj_return");

    // 删除子界面
    lv_obj_del( xj1_win);

    // 显示主界面
    show_main_win();
}

// 显示子界面xj1
static void show_xj1_win()
{
    // 创建子界面
    xj1_win = lv_obj_create(lv_scr_act());
    lv_obj_set_size(xj1_win, 800, 480);

    // 创建细节图
    lv_obj_t * xj1_img = lv_img_create(xj1_win);
    lv_img_set_src(xj1_img, "S:/IOT/bling/xj1.png");
    lv_obj_align(xj1_img, LV_ALIGN_CENTER, 0, 0);

    // 创建返回按钮
    lv_obj_t * btn = lv_btn_create(xj1_win);
    lv_obj_set_size(btn, 100, 50);
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
    lv_obj_add_event_cb(btn, xj_return, LV_EVENT_CLICKED, xj1_win);

    // 创建按钮标签
    lv_obj_t * label1 = lv_label_create(btn);
    lv_obj_set_style_text_font(label1, &lv_font_source_han_sans_bold_20, 0);
    lv_label_set_text(label1, "返回");
    lv_obj_center(label1);
}

// 显示子界面xj2
static void show_xj2_win()
{
    // 创建子界面
    xj2_win = lv_obj_create(lv_scr_act());
    lv_obj_set_size(xj2_win, 800, 480);

    // 创建细节图
    lv_obj_t * xj2_img = lv_img_create(xj2_win);
    lv_img_set_src(xj2_img, "S:/IOT/bling/xj2.png");
    lv_obj_align(xj2_img, LV_ALIGN_CENTER, 0, 0);

    // 创建返回按钮
    lv_obj_t * btn = lv_btn_create(xj2_win);
    lv_obj_set_size(btn, 100, 50);
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
    lv_obj_add_event_cb(btn, xj_return, LV_EVENT_CLICKED, xj2_win);

    // 创建按钮标签
    lv_obj_t * label1 = lv_label_create(btn);
    lv_obj_set_style_text_font(label1, &lv_font_source_han_sans_bold_20, 0);
    lv_label_set_text(label1, "返回");
    lv_obj_center(label1);
}

// 显示子界面xj3
static void show_xj3_win()
{
    // 创建子界面
    xj3_win = lv_obj_create(lv_scr_act());
    lv_obj_set_size(xj3_win, 800, 480);

    // 创建细节图
    lv_obj_t * xj3_img = lv_img_create(xj3_win);
    lv_img_set_src(xj3_img, "S:/IOT/bling/xj3.png");
    lv_obj_align(xj3_img, LV_ALIGN_CENTER, 0, 0);

    // 创建返回按钮
    lv_obj_t * btn = lv_btn_create(xj3_win);
    lv_obj_set_size(btn, 100, 50);
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
    lv_obj_add_event_cb(btn, xj_return, LV_EVENT_CLICKED, xj3_win);

    // 创建按钮标签
    lv_obj_t * label1 = lv_label_create(btn);
    lv_obj_set_style_text_font(label1, &lv_font_source_han_sans_bold_20, 0);
    lv_label_set_text(label1, "返回");
    lv_obj_center(label1);
}

// 背景图片点击事件回调函数
static void background_img_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if (code == LV_EVENT_CLICKED) {
        if (current_background_index == 0) {
            lv_obj_del(main_win); // 确保 main_win 被正确定义和初始化
            show_xj1_win();
        } else if (current_background_index == 1) {
            lv_obj_del(main_win);
            show_xj2_win();
        } else if (current_background_index == 2) {
            lv_obj_del(main_win);
            show_xj3_win();
        }
    }
}


//主界面细节图
// 展示细节按钮的回调函数
static void detail_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if (code == LV_EVENT_CLICKED) {
        if (current_background_index == 0) {
            lv_obj_del(main_win); // 删除主界面
            show_xj1_win();      // 显示 xj1 界面
        } else if (current_background_index == 1) {
            lv_obj_del(main_win); // 删除主界面
            show_xj2_win();      // 显示 xj2 界面
        } else if (current_background_index == 2) {
            lv_obj_del(main_win); // 删除主界面
            show_xj3_win();      // 显示 xj3 界面
        }
    }
}






// 显示主界面
void show_main_win()
{

    // 1.创建主界面
    main_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    // 2.设置主界面的大小与屏幕一致
    lv_obj_set_size(main_win, 800, 480);

    // 在主界面中创建时间图标(注意：要使用开发板里面的绝对路径)
    lv_obj_t * time = lv_imgbtn(main_win, 600, 5, 50, 50, "S:/IOT/bling/time.png");
    lv_obj_add_event_cb(time, time_btn_event_callback, LV_EVENT_CLICKED, NULL);

    // 在主界面中创建天气图标(注意：要使用开发板里面的绝对路径)
    lv_obj_t * weather = lv_imgbtn(main_win, 400, 5, 50, 50, "S:/IOT/bling/weather.png");
    lv_obj_add_event_cb(weather, weather_btn_event_callback, LV_EVENT_CLICKED, NULL);

    // 在主界面中创建公告图标(注意：要使用开发板里面的绝对路径)
    lv_obj_t * an = lv_imgbtn(main_win, 5, 5, 200, 100, "S:/IOT/bling/an.png");
    lv_obj_add_event_cb(an, an_btn_event_callback, LV_EVENT_CLICKED, NULL);

    // 在主界面中创建注意事项1图标(注意：要使用开发板里面的绝对路径)
    lv_obj_t * notice1 = lv_imgbtn(main_win, 5, 150, 200, 100, "S:/IOT/bling/notice1.png");
    lv_obj_add_event_cb(notice1, notice1_btn_event_callback, LV_EVENT_CLICKED, NULL);

   // 在主界面中创建注意事项2图标(注意：要使用开发板里面的绝对路径)
   lv_obj_t * notice2 = lv_imgbtn(main_win, 5, 300, 200, 100, "S:/IOT/bling/notice2.png");
   lv_obj_add_event_cb(notice2, notice2_btn_event_callback, LV_EVENT_CLICKED, NULL);

   // 在主界面中创建注意事项3图标(注意：要使用开发板里面的绝对路径)
   lv_obj_t * notice3 = lv_imgbtn(main_win, 5, 450, 200, 100, "S:/IOT/bling/notice3.png");
   lv_obj_add_event_cb(notice3, notice3_btn_event_callback, LV_EVENT_CLICKED, NULL);

    //背景图

// 创建背景图片
background_img = lv_img_create(main_win);
lv_img_set_src(background_img, background_images[current_background_index]);
lv_obj_align(background_img, LV_ALIGN_CENTER, 0, 0);
lv_obj_move_background(background_img); // 将背景图片移动到最底层
  // 在show_main_win函数中为背景图添加点击事件
  lv_obj_add_event_cb(background_img, background_img_event_callback, LV_EVENT_CLICKED, NULL);
// 创建上一张背景按钮
lv_obj_t * prev_bg_btn = lv_btn_create(main_win);
lv_obj_set_size(prev_bg_btn, 80, 40);
lv_obj_set_pos(prev_bg_btn, 200, 500); // 设置按钮位置为 (200, 500)
lv_obj_add_event_cb(prev_bg_btn, prev_bg_btn_event_callback, LV_EVENT_CLICKED, NULL);

// 创建上一张背景按钮的标签
lv_obj_t * prev_bg_label = lv_label_create(prev_bg_btn);
lv_obj_set_style_text_font(prev_bg_label, &lv_font_source_han_sans_bold_20, 0);
lv_label_set_text(prev_bg_label, "上一张");
lv_obj_center(prev_bg_label);

// 创建下一张背景按钮
lv_obj_t * next_bg_btn = lv_btn_create(main_win);
lv_obj_set_size(next_bg_btn, 80, 40);
lv_obj_set_pos(next_bg_btn, 700, 500); // 设置按钮位置为 (700, 500)
lv_obj_add_event_cb(next_bg_btn, next_bg_btn_event_callback, LV_EVENT_CLICKED, NULL);

// 创建下一张背景按钮的标签
lv_obj_t * next_bg_label = lv_label_create(next_bg_btn);
lv_obj_set_style_text_font(next_bg_label, &lv_font_source_han_sans_bold_20, 0);
lv_label_set_text(next_bg_label, "下一张");
lv_obj_center(next_bg_label);

      
////展示细节按钮
// 在主界面中创建展示细节按钮
lv_obj_t * detail_btn = lv_btn_create(main_win);
lv_obj_set_size(detail_btn, 80, 40);
lv_obj_set_pos(detail_btn, 800, 240); // 设置按钮位置为 (800, 240)

// 创建按钮标签
lv_obj_t * detail_label = lv_label_create(detail_btn);
lv_obj_set_style_text_font(detail_label, &chinese_ziku, 0);
lv_label_set_text(detail_label, "展示细节");
lv_obj_center(detail_label);

// 添加按钮的事件，当按钮被点击后就会触发 event_cb 函数
lv_obj_add_event_cb(detail_btn, detail_btn_event_callback, LV_EVENT_CLICKED, NULL);


}



//时间
// 全局标签对象，用于显示时间
lv_obj_t *time_label = NULL;
// 定时器回调函数：更新时间显示
static void update_time(lv_timer_t *timer)
{
    // 获取当前时间
    struct timeval tv;
    struct tm *tm_info;
    char time_str[64];

    gettimeofday(&tv, NULL);
    tm_info = localtime(&tv.tv_sec);

    // 格式化为 "HH:MM:SS" 格式
    strftime(time_str, sizeof(time_str), "%H:%M:%S", tm_info);
    
    // 更新标签文本
    if(time_label) 
    {
        lv_label_set_text(time_label, time_str);
        lv_obj_invalidate(time_label); // 确保界面刷新
    }
}
// 时间界面返回事件函数
static void time_return(lv_event_t * e)
{
    LV_LOG_USER("time_return");

    // 删除时间界面
    lv_obj_del(time_win);

    // 显示主界面
    show_main_win();
}

// 显示时间界面
static void show_time_win()
{

     // 创建界面
        time_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(time_win, 800, 480);
    // 创建标签对象
     time_label = lv_label_create(lv_scr_act());
     
     lv_obj_set_style_text_font(time_label, &chinese_ziku, 0);

     
     // 创建定时器：每秒更新一次时间
     lv_timer_create(update_time, 1000, NULL);
    // 放入中间
     lv_obj_center(time_label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(time_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, time_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}



// 天气界面返回事件函数
static void weather_return(lv_event_t * e)
{
    LV_LOG_USER("weather_return");

    // 删除天气界面
    lv_obj_del(weather_win);

    // 显示主界面
    show_main_win();
}

// 显示天气界面
static void show_weather_win()
{

    // 创建一个对象
    weather_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(weather_win, 800, 480);

    // 天气界面中创建一个按钮
    lv_obj_t * label = lv_label_create(weather_win);

    // 设置标签的内容
    lv_obj_set_style_text_font(label, &chinese_ziku, 0);
    lv_label_set_text(label, "今日天气:小晴");

    // 放入中间
    lv_obj_center(label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(weather_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, weather_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}


// 公告界面返回事件函数
static void an_return(lv_event_t * e)
{
    LV_LOG_USER("an_return");

    // 删除天气界面
    lv_obj_del(an_win);

    // 显示主界面
    show_main_win();
}

// 显示公告界面
static void show_an_win()
{

    // 创建一个对象
    an_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(an_win, 800, 480);

    // 在公告界面中创建一个人按钮
    lv_obj_t * label = lv_label_create(an_win);

    // 设置标签的内容
    lv_obj_set_style_text_font(label, &chinese_ziku, 0);
    lv_label_set_text(label, "车辆没有防震方案");

    // 放入中间
    lv_obj_center(label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(an_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, an_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}


// 注意事项3界面返回事件函数
static void notice3_return(lv_event_t * e)
{
    LV_LOG_USER("notice3_return");

    // 删除注意事项3界面
    lv_obj_del(notice3_win);

    // 显示主界面
    show_main_win();
}

// 显示注意事项3界面
static void show_notice3_win()
{

    // 创建一个对象
    notice3_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(notice3_win, 800, 480);

    // 注意事项3界面中创建一个人按钮
    lv_obj_t * label = lv_label_create(notice3_win);

    // 设置标签的内容
    lv_obj_set_style_text_font(label, &chinese_ziku, 0);
    lv_label_set_text(label, "本次销售为涨价打折就是捞钱");

    // 放入中间
    lv_obj_center(label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(notice3_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, notice3_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}




// 注意事项2界面返回事件函数
static void notice2_return(lv_event_t * e)
{
    LV_LOG_USER("notice2_return");

    // 删除注意事项3界面
    lv_obj_del(notice2_win);

    // 显示主界面
    show_main_win();
}

// 显示注意事项2界面
static void show_notice2_win()
{

    // 创建一个对象
    notice2_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(notice2_win, 800, 480);

    // 在注意事项2界面中创建一个人按钮
    lv_obj_t * label = lv_label_create(notice2_win);

    // 设置标签的内容

    lv_obj_set_style_text_font(label, &chinese_ziku, 0);
    lv_label_set_text(label, "广告位招租  什么赚钱来什么");

    // 放入中间
    lv_obj_center(label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(notice2_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, notice2_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}



// 注意事项1界面返回事件函数
static void notice1_return(lv_event_t * e)
{
    LV_LOG_USER("notice1_return");

    // 删除注意事项3界面
    lv_obj_del(notice1_win);

    // 显示主界面
    show_main_win();
}

// 显示注意事项1界面
static void show_notice1_win()
{

    // 创建一个对象
    notice1_win = lv_obj_create(lv_scr_act()); // 创建一个独立的对象，大小与屏幕一致

    lv_obj_set_size(notice1_win, 800, 480);

    // 在注意事项1界面中创建一个人按钮
    lv_obj_t * label = lv_label_create(notice1_win);

    // 设置标签的内容
    lv_obj_set_style_text_font(label, &chinese_ziku, 0);
    lv_label_set_text(label, "品牌方因要求员工加班倒闭 加班时长每日>23小时");

    // 放入中间
    lv_obj_center(label);

    // 创建一个返回按钮

    // 创建一个按钮对象
    lv_obj_t * btn = lv_btn_create(notice1_win);
    // 设置按钮的大小
    lv_obj_set_size(btn, 100, 50);
    // 把按钮放入右下角
    lv_obj_align(btn, LV_ALIGN_BOTTOM_RIGHT, 0, 0);

    // 添加按钮的事件 ，当按钮 被点击后就会触发  event_cb 函数
    lv_obj_add_event_cb(btn, notice1_return, LV_EVENT_CLICKED, NULL);

    // 创建一个标签对象  ，在按钮上
    lv_obj_t * label1 = lv_label_create(btn);
    // 设置标签的文字
    lv_obj_set_style_text_font(label1, &chinese_ziku, 0);
    lv_label_set_text(label1, "返回主界面");
    // 把标签放入按钮的中央
    lv_obj_center(label1);
}

// 点击函数

//时间
static void time_btn_event_callback(lv_event_t * event)
{
    // 获取事件号
    lv_event_code_t code = lv_event_get_code(event);

    // 单击事件
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口1的容器添加隐藏属性，清除窗口2的隐藏属性
        lv_obj_add_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示时间界面
        show_time_win();
#endif
    }
}

//天气
static void weather_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口2的容器添加隐藏属性，清除窗口1的隐藏属性
        lv_obj_add_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示天气界面
        show_weather_win();
#endif
    }
}

//公告
static void an_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口2的容器添加隐藏属性，清除窗口1的隐藏属性
        lv_obj_add_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示天气界面
        show_an_win();
#endif
    }
}

//注意事项1
static void notice1_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口2的容器添加隐藏属性，清除窗口1的隐藏属性
        lv_obj_add_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示天气界面
        show_notice1_win();
#endif
    }
}

//注意事项2
static void notice2_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口2的容器添加隐藏属性，清除窗口1的隐藏属性
        lv_obj_add_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示天气界面
        show_notice2_win();
#endif
    }
}

//注意事项3
static void notice3_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if(code == LV_EVENT_CLICKED) {
#if HIDDEN_WIN
        // 给窗口2的容器添加隐藏属性，清除窗口1的隐藏属性
        lv_obj_add_flag(win2_contanier, LV_OBJ_FLAG_HIDDEN);
        lv_obj_clear_flag(win1_contanier, LV_OBJ_FLAG_HIDDEN);
#else
        // 删除主界面
        lv_obj_del(main_win);

        // 显示天气界面
        show_notice3_win();
#endif
    }
}


// 上一张背景按钮的回调函数
static void prev_bg_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if (code == LV_EVENT_CLICKED) {
        current_background_index--;
        if (current_background_index < 0) {
            current_background_index = sizeof(background_images) / sizeof(background_images[0]) - 1;
        }
        lv_img_set_src(background_img, background_images[current_background_index]);
    }
}

// 下一张背景按钮的回调函数
static void next_bg_btn_event_callback(lv_event_t * event)
{
    lv_event_code_t code = lv_event_get_code(event);
    if (code == LV_EVENT_CLICKED) {
        current_background_index++;
        if (current_background_index >= sizeof(background_images) / sizeof(background_images[0])) {
            current_background_index = 0;
        }
        lv_img_set_src(background_img, background_images[current_background_index]);
    }
}


